﻿Option Explicit On


Public Class Decesos
    Inherits System.Web.UI.Page
    Shared Muertito As New Persona
    Shared Doctor As New Persona


    Private Sub lImpiaTablasTemporales()

        Dim x As Boolean


        x = Datos.Modificar("borrarTablasTempDeDeceso", Nothing, " lImpiaTablasTemporales -decesos")



    End Sub

    Private Sub CargaComboDelfiltroCieXPrimeraVez()


        FG.CargaCombo("TraeClasificacionGeneralCie", CboClasificacionGeneral)
        CboClasificacionGeneral.Items.Add("TODAS")
        CboClasificacionGeneral.Text = "TODAS"

        'cargo el combo por el valor del combo del CboClasificacionGeneral
        FG.CargaCombo("TraeSubClasif_CIE_xClasificacionGral", cboSubClasificacion, CboClasificacionGeneral.Text)
        cboSubClasificacion.Items.Add("TODOS")
        cboSubClasificacion.Text = "TODOS"


        'cargo el combo categoria
        CargaCombo_x_2_valores("TraeCategoriaCie_X_claGralySubClasf", cboCategoria, CboClasificacionGeneral.Text, cboSubClasificacion.Text)
        cboCategoria.Items.Add("TODAS")
        cboCategoria.Text = "TODAS"




    End Sub



    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim ImagenFondo As Image = Page.Master.FindControl("ImagFondoCabecera")


        If Not IsPostBack Then
            FG.culturaPaginas()

            'Cargo páginas anterior y actual!!!
            Var_Globales.Setea_paginas("Decesos.aspx")

            'acomo la imagen de fondo 
            ImagenFondo.Height = 340


            'cargo el combo con las hora y minutos
            FG.completaCombo_CnHOrasYMInutos_cada5Min(cboHOra)
            cboHOra.Items.Add("-")
            cboHOra.Text = "-"
            ' ------------------------------------


            '------------------------------------
            CargaComboDelfiltroCieXPrimeraVez()
            '----------------------

            'limpio tablas temporales
            lImpiaTablasTemporales()
        End If

    End Sub









    Private Sub LimpiaCampos()

        FG.SacaCartelDeAViso(lblMEsejAlBuscar)




        txtDNIpaciente.Text = ""
        txtApellido.Text = ""
        txtNombrePaciente.Text = ""

        TxtFechaNac.Text = ""
        cboHOra.Text = "-"



        txtDignosticoDeceso.Text = ""
        txtLugarDeceso.Text = ""


        LblConforme.Text = "NO"

        lblEspecialidad.Visible = False
        cboEspecilidad.Visible = False

        FG.SacaCartelDeAViso(LblMejseGUardar)




        'vacio las tabla temporal donde cargo el cie seleccionado
        lImpiaTablasTemporales()

        Gv_Cie_seleccionado.DataBind()


    End Sub
    Private Sub RealizaBusqueda(ByVal _dni As String)



        Muertito.SetaDatosXDn(_dni)

        If Muertito.Dev_ExistePersona = False Then
            FG.MuestraCartel("El Dni no existe", lblMEsejAlBuscar)
            Exit Sub
        End If

        If Muertito.Dev_EstaMurido = True Then
            FG.MuestraCartel("La persona ya fue declarada fallecida", lblMEsejAlBuscar)
            Exit Sub
        End If


        txtDNIpaciente.Text = Muertito.Dev_Dni
        txtApellido.Text = Muertito.Dev_apellido
        txtNombrePaciente.Text = Muertito.Dev_Nombre





    End Sub

    Protected Sub imgBuscar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgBuscar.Click


        LimpiaCampos()


        If txtDNI.Text = "Búsqueda DNI" Or txtDNI.Text = "" Then
            FG.MuestraCartel("Falta ingresar el Dni", lblMEsejAlBuscar)
            Exit Sub
        End If


        RealizaBusqueda(txtDNI.Text)
    End Sub

    Protected Sub btnLectParaPacinte_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLectParaPacinte.Click
        btnOK_Medico.Visible = False
        btnOK_Muertito.Visible = True


        mdl_popup_Lector.Show()


    End Sub

    Protected Sub btnConforme_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnConforme.Click


        btnOK_Medico.Visible = True
        btnOK_Muertito.Visible = False



        mdl_popup_Lector.Show()
    End Sub

    Protected Sub imgAgregarCie_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgAgregarCie.Click
        mdl_popul_buscaCie.Show()

    End Sub

    Protected Sub btnOK_Muertito_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnOK_Muertito.Click
        Dim aux As String

        FG.SacaCartelDeAViso(lblMEsejAlBuscar)


        'leo del lector
        aux = Lector.IdentificaPersonas_DevuelveDNI


        If aux = "" Then
            FG.MuestraCartel("No se pudo identificar al persona", lblMEsejAlBuscar)
            mdl_popup_Lector.Hide()
            Exit Sub
        End If


        mdl_popup_Lector.Hide()
        RealizaBusqueda(aux)



    End Sub

    Protected Sub btnOK_Medico_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnOK_Medico.Click
        Dim aux As String

        ''seteo
        LblConforme.Text = "NO"
        lblEspecialidad.Visible = False
        cboEspecilidad.Visible = False
        '------------------

        'activo el lector
        aux = Lector.IdentificaPersonas_DevuelveDNI
        '---------------

        'hardcodeo
        'aux = TextBox1.Text

        If aux = "" Then
            LblConforme.Text = ("No se pudo identificar a la persona")
            mdl_popup_Lector.Hide()
            Exit Sub
        End If

        Doctor.SetaDatosXDn(aux)

        If Doctor.Dev_EsMedico = False Then
            LblConforme.Text = ("La persona NO es un medico")
            mdl_popup_Lector.Hide()
            Exit Sub
        End If

        If Doctor.Dev_EstaMurido = True Then
            LblConforme.Text = ("El medico figura fallecido, NO es posible continuar")
            mdl_popup_Lector.Hide()
            Exit Sub
        End If
        '--------------------------


        'si llego hasta aca tiene un conforme
        LblConforme.Text = Doctor.Dev_ApellidoYnombre & "-Conf.:OK."


        lblEspecialidad.Visible = True
        cboEspecilidad.Visible = True
        Doctor.CargaCombo_Cn_Especialidades(cboEspecilidad)

        cboEspecilidad.Items.Add("-")
        cboEspecilidad.Text = "-"


        mdl_popup_Lector.Hide()
    End Sub

    Protected Sub lnkBotonCierraBusquedaCie_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lnkBotonCierraBusquedaCie.Click
        Dim RS As ADODB.Recordset
        mdl_popul_buscaCie.Hide()





        'vacio la busqueda que hice anteriormente 
        GV_resultadobusquedaCie.DataBind()
        lblResultado.Text = "Resultado:0"
        '---------------------------------


        'actualizo cargo el cie seleccionado en la pagina 
        '    vacio la grilla
        Gv_Cie_seleccionado.DataBind()


        'busco los datos seleccionados en la tabla     
        RS = Datos.TraerTodos("TraeCieSeleccionado_de_Temp_Decesos", Nothing, "Actualiza el cie Seleccionado de la pagina - GV_resultadobusquedaCie_SelectedIndexChanged")

        'cargo el gv_cn el cie seleccionado
        Gv_Cie_seleccionado.DataSource = FG.cargaUnDataTable(RS)
        Gv_Cie_seleccionado.DataBind()







    End Sub

    Protected Sub CmdBucarCie_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CmdBucarCie.Click
        'inicializo el cartel de error de busqueda
        lblmenjeBusquedaCie.Visible = False
        lblmenjeBusquedaCie.Text = ""
        '----------------------------------



        If txtCodcie.Text = "" And txtDiagnostico_Cie.Text = "" Then
            lblmenjeBusquedaCie.Text = "Debe Ingresar un criterio para realizar la busqueda"
            lblmenjeBusquedaCie.Visible = True
            Exit Sub
        End If

        RealizaBusquedaDeCie()


    End Sub

    Protected Sub CboClasificacionGeneral_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles CboClasificacionGeneral.SelectedIndexChanged
        lblmenjeBusquedaCie.Text = ""
        lblmenjeBusquedaCie.Visible = False


        'cargo el combo por el valor del combo del CboClasificacionGeneral
        FG.CargaCombo("TraeSubClasif_CIE_xClasificacionGral", cboSubClasificacion, CboClasificacionGeneral.Text)
        cboSubClasificacion.Items.Add("TODOS")
        cboSubClasificacion.Text = "TODOS"


        'cargo el combo categoria
        CargaCombo_x_2_valores("TraeCategoriaCie_X_claGralySubClasf", cboCategoria, CboClasificacionGeneral.Text, cboSubClasificacion.Text)
        cboCategoria.Items.Add("TODAS")
        cboCategoria.Text = "TODAS"


        If txtCodcie.Text <> "" Or txtDiagnostico_Cie.Text <> "" Then
            RealizaBusquedaDeCie()
        End If



    End Sub

    Protected Sub cboSubClasificacion_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cboSubClasificacion.SelectedIndexChanged
        'seteo el lblMsje de error al buscar
        lblmenjeBusquedaCie.Text = ""
        lblmenjeBusquedaCie.Visible = False



        'cargo el combo categoria
        CargaCombo_x_2_valores("TraeCategoriaCie_X_claGralySubClasf", cboCategoria, CboClasificacionGeneral.Text, cboSubClasificacion.Text)
        cboCategoria.Items.Add("TODAS")
        cboCategoria.Text = "TODAS"

        If txtCodcie.Text <> "" Or txtDiagnostico_Cie.Text <> "" Then
            RealizaBusquedaDeCie()
        End If

    End Sub

    Protected Sub cboCategoria_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cboCategoria.SelectedIndexChanged
        'seteo el lblMsje de error al buscar
        lblmenjeBusquedaCie.Text = ""
        lblmenjeBusquedaCie.Visible = False


        If txtCodcie.Text <> "" Or txtDiagnostico_Cie.Text <> "" Then
            RealizaBusquedaDeCie()
        End If

    End Sub
    Private Sub RealizaBusquedaDeCie()
        Dim param(4) As ADODB.Parameter
        Dim Rs As ADODB.Recordset


        'vacio el gridview()'''''''''
        GV_resultadobusquedaCie.DataBind()
        lblResultado.Text = "Resultado:0"
        '''''''''''''''''''''''''''''

        param(0) = New ADODB.Parameter
        param(0).Name = "@cod"
        param(0).Type = ADODB.DataTypeEnum.adVarChar
        param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(0).Value = txtCodcie.Text
        param(0).Size = 5


        param(1) = New ADODB.Parameter
        param(1).Name = "@diagnostico"
        param(1).Type = ADODB.DataTypeEnum.adVarChar
        param(1).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(1).Value = txtDiagnostico_Cie.Text
        param(1).Size = 500


        param(2) = New ADODB.Parameter
        param(2).Name = "@ClasificacionGeneral"
        param(2).Type = ADODB.DataTypeEnum.adVarChar
        param(2).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(2).Value = CboClasificacionGeneral.Text
        param(2).Size = 500



        param(3) = New ADODB.Parameter
        param(3).Name = "@SubClasificacion"
        param(3).Type = ADODB.DataTypeEnum.adVarChar
        param(3).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(3).Value = cboSubClasificacion.Text
        param(3).Size = 500


        param(4) = New ADODB.Parameter
        param(4).Name = "@categoria"
        param(4).Type = ADODB.DataTypeEnum.adVarChar
        param(4).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(4).Value = cboCategoria.Text
        param(4).Size = 500


        Rs = Datos.TraerTodos("buscaCiexVariosParametros_ParaDecesos", param, "Busca el cie para la hc-RealizaBusquedaDeCie")

        GV_resultadobusquedaCie.DataSource = FG.cargaUnDataTable(Rs)
        GV_resultadobusquedaCie.DataBind()


        'muestro la cantidad de registros 
        lblResultado.Text = "Resultado:" & CStr(Rs.RecordCount)


    End Sub
    Private Function Carga_CieSeleccionadoDebusqueda(ByVal Cod_cid As String) As Boolean
        Dim param(0) As ADODB.Parameter

        param(0) = New ADODB.Parameter
        param(0).Name = "@cod"
        param(0).Type = ADODB.DataTypeEnum.adVarChar
        param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(0).Value = Cod_cid
        param(0).Size = 5


        Carga_CieSeleccionadoDebusqueda = Datos.Agregar("cargaCie_SeleccionadoEN_TEMP_dECESO", param, "Guarda El cie seleccionado -function Carga_CieSeleccionadoDebusqueda")


    End Function

    Protected Sub GV_resultadobusquedaCie_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GV_resultadobusquedaCie.SelectedIndexChanged
        Dim row As GridViewRow = GV_resultadobusquedaCie.SelectedRow

        'sete el cartel de guaradar
        FG.SacaCartelDeAViso(LblMejseGUardar)
        FG.SacaCartelDeAViso(lblmenjeBusquedaCie)

        If Carga_CieSeleccionadoDebusqueda(row.Cells(1).Text) = True Then
            'actualizo la busqueda , para dar efecto de que se cargo
            RealizaBusquedaDeCie()

        Else
            FG.MuestraCartel("Error al cargar el cie seleccionado", lblmenjeBusquedaCie)
        End If
    End Sub


    Private Function BorraCie_selecionado(ByVal Cie_A_borrar As String) As Boolean
        Dim param(0) As ADODB.Parameter

        param(0) = New ADODB.Parameter
        param(0).Name = "@cod"
        param(0).Type = ADODB.DataTypeEnum.adVarChar
        param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(0).Value = Cie_A_borrar
        param(0).Size = 5


        BorraCie_selecionado = Datos.Modificar("BorraUNcie_de_Temp_deceso", param, "borra un cie la tabla temp -Function BorraCie_selecionado")




    End Function
    Protected Sub Gv_Cie_seleccionado_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles Gv_Cie_seleccionado.SelectedIndexChanged
        Dim row As GridViewRow = Gv_Cie_seleccionado.SelectedRow
        Dim Rs As ADODB.Recordset

        If BorraCie_selecionado(row.Cells(1).Text) = True Then


            'actualizo cargo el cie seleccionado en la pagina 
            '    vacio la grilla
            Gv_Cie_seleccionado.DataBind()
            'busco los datos seleccionados en la tabla     
            Rs = Datos.TraerTodos("TraeCieSeleccionado_de_Temp_Decesos", Nothing, "Actualiza el cie Seleccionado de la pagina - GV_resultadobusquedaCie_SelectedIndexChanged")

            'cargo el gv_cn el cie seleccionado
            Gv_Cie_seleccionado.DataSource = FG.cargaUnDataTable(Rs)
            Gv_Cie_seleccionado.DataBind()


        End If

    End Sub

    Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnGuardar.Click

        'saca el cartel de guardar
        FG.SacaCartelDeAViso(LblMejseGUardar)

        'hago las validaciones
        If txtDNI.Text = "" Then
            FG.MuestraCartel("Falta el dni de la persona fallecida", LblMejseGUardar)
            Exit Sub
        End If

        If TxtFechaNac.Text = "" Then
            FG.MuestraCartel("Falta fecha del suceso", LblMejseGUardar)
            Exit Sub
        End If

        If IsDate(TxtFechaNac.Text) = False Then
            FG.MuestraCartel("Fecha del suceso no valida", LblMejseGUardar)
            Exit Sub
        End If

        If CDate(TxtFechaNac.Text) > Now.Date Then
            FG.MuestraCartel("La fecha del suceso no puede ser superior a la actual", LblMejseGUardar)
            Exit Sub
        End If

        If cboHOra.Text = "-" Then
            FG.MuestraCartel("Debe seleccionar la hora del suceso", LblMejseGUardar)
            Exit Sub
        End If

        If txtDignosticoDeceso.Text = "" Then
            FG.MuestraCartel("Falta detallar el diagnostico de la causa de muerte", LblMejseGUardar)
            Exit Sub
        End If

        If txtLugarDeceso.Text = "" Then
            FG.MuestraCartel("Falta especificar el lugar de la causa de muerte", LblMejseGUardar)
            Exit Sub
        End If

        If Gv_Cie_seleccionado.Rows.Count = 0 Then
            FG.MuestraCartel("Debe especificar al menos un cie", LblMejseGUardar)
            Exit Sub
        End If

        If InStr(UCase(LblConforme.Text), "OK", CompareMethod.Text) = 0 Then
            FG.MuestraCartel("Falta Confome medico", LblMejseGUardar)
            Exit Sub
        End If

        If cboEspecilidad.Text = "-" Then
            FG.MuestraCartel("Falta especificar la especialidad del medico", LblMejseGUardar)
            Exit Sub
        End If
        '----fin validacion------




        'hago la carga
        If Carga_Deceso() = True Then

            LimpiaCampos()
            FG.MuestraCartel("Se cargo correctamente el deceso", LblMejseGUardar)

        Else
            FG.MuestraCartel("Se produjo un error al cargar el deceso", LblMejseGUardar)
        End If

    End Sub
    Private Function Carga_Deceso() As Boolean
        Dim Param(6) As ADODB.Parameter



        Param(0) = New ADODB.Parameter
        Param(0).Name = "@dniPaciente"
        Param(0).Type = ADODB.DataTypeEnum.adVarChar
        Param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput
        Param(0).Size = 10
        Param(0).Value = Muertito.Dev_Dni

        Param(1) = New ADODB.Parameter
        Param(1).Name = "@dni-Doctor"
        Param(1).Type = ADODB.DataTypeEnum.adVarChar
        Param(1).Direction = ADODB.ParameterDirectionEnum.adParamInput
        Param(1).Size = 10
        Param(1).Value = Doctor.Dev_Dni

        Param(2) = New ADODB.Parameter
        Param(2).Name = "@Especialidad"
        Param(2).Type = ADODB.DataTypeEnum.adVarChar
        Param(2).Direction = ADODB.ParameterDirectionEnum.adParamInput
        Param(2).Size = 50
        Param(2).Value = cboEspecilidad.Text

        Param(3) = New ADODB.Parameter
        Param(3).Name = "@ID_institucion"
        Param(3).Type = ADODB.DataTypeEnum.adInteger
        Param(3).Direction = ADODB.ParameterDirectionEnum.adParamInput
        ' param(3).Size = 10
        Param(3).Value = Doctor.Dev_ID_Institucion      'es el id del lugar de trabajo


        Param(4) = New ADODB.Parameter
        Param(4).Name = "@Diagnostico"
        Param(4).Type = ADODB.DataTypeEnum.adVarChar
        Param(4).Direction = ADODB.ParameterDirectionEnum.adParamInput
        Param(4).Size = 8000
        Param(4).Value = txtDignosticoDeceso.Text

        Param(5) = New ADODB.Parameter
        Param(5).Name = "@fechaYhoraDeDeceso"
        Param(5).Type = ADODB.DataTypeEnum.adVarChar
        Param(5).Direction = ADODB.ParameterDirectionEnum.adParamInput
        Param(5).Size = 20
        Param(5).Value = TxtFechaNac.Text & " " & cboHOra.Text


        Param(6) = New ADODB.Parameter
        Param(6).Name = "@lugar"
        Param(6).Type = ADODB.DataTypeEnum.adVarChar
        Param(6).Direction = ADODB.ParameterDirectionEnum.adParamInput
        Param(6).Size = 1000
        Param(6).Value = txtLugarDeceso.Text


        Carga_Deceso = Datos.Agregar("CARGAR_dECESO", Param, "Carga_Deceso - decesos")


    End Function
End Class